package lms

import (
	"lib/structs/base"
	"lib/structs/tables"
	"lib/utils"
)

type SearchQuestion struct {
	Name     string `form:"name"`
	FolderId int64  `form:"folderId,string"`
	base.Page
}

type QuestionFolderTree struct {
	tables.QuestionFolder
	PathDepth string
	Children  []*QuestionFolderTree
}

// AddExamPaper 添加一张试卷需要用到的结构体
type AddExamPaper struct {
	Code            string `json:"code"`                // 试卷编号
	StartTime       int64  `json:"startTime,string"`    // 最早的开始时间
	EndTime         int64  `json:"endTime,string"`      // 最晚的结束时间
	ExamDuration    int64  `json:"examDuration,string"` // 考试总时长
	AllowRetest     bool   `json:"allowRetest"`         // 是否允许重考
	RetestTime      int    `json:"retestTime"`          // 允许重考的次数
	AllowSwitchPage bool   `json:"allowSwitchPage"`     //是否允许切屏
	SwitchPageNum   int    `json:"switchPageNum"`       //允许切屏的次数
	MustDuration    int64  `json:"mustDuration,string"` // 多少时间前不能交卷
}

// ExamPaperBindQuestion 试卷绑定题目
type ExamPaperBindQuestion struct {
	ExamPaperId int64                  `json:"examPaperId,string"`
	QuestionId  utils.StringArrayInt64 `json:"questionId"`
}

// SearchExamPaperPage 查询试卷分页信息
type SearchExamPaperPage struct {
	Code string `form:"code"` // 试卷编号
	base.Page
}

// HandInPaperDto 交卷时提交的参数
type HandInPaperDto struct {
	ExamPaperId int64    `json:"examPaperId,string"` // 试卷ID
	Answers     []Answer `json:"answers"`            // 回答
}

// Answer 试卷回答
type Answer struct {
	QuestionId int64  `json:"questionId,string"`
	UserAnswer string `json:"userAnswer,omitempty"`
}
